package com.yonyou.cyxdms.sysAuth.service.service.broker;

import com.yonyou.cyxdms.sysAuth.service.dto.broker.*;
import com.yonyou.cyxdms.sysAuth.service.vo.user.BrokerDealerInfoVO;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 经纪人表 服务类
 * </p>
 *
 * @author wangsc
 * @since 2018-09-15
 */
public interface BrokerService {

    /**
     * 处理DMS分发的信息
     *
     * @param brokerDTO
     * @return java.lang.Long
     * @author wangsc
     * @since 2018/9/17
     */
//    Long dealEmployeeInfo(BrokerDTO brokerDTO);

    /**
     * 查询顾问名片信息
     *
     * @param uid
     * @return com.yonyou.cyx.broker.service.model.dto.broker.BrokerCardDTO
     * @author wangsc
     * @since 2018/12/14
     */
    BrokerCardDTO getBrokerCard(Long uid);

    /**
     * 获取顾问信息
     *
     * @param userTokens
     * @return com.yonyou.cyx.broker.service.model.dto.broker.BrokerDTO
     * @author zhangsx
     * @since 2019/1/9
     */
    List<BrokerInfoDTO> getBrokerByUserTokens(List<String> userTokens);

    /**
     * 获取顾问信息
     *
     * @param userTokens
     * @return com.yonyou.cyx.broker.service.model.dto.broker.BrokerDTO
     * @author zhangsx
     * @since 2019/1/9
     */
    List<BrokerInfoDTO> getBrokerByUidsAndAppId(List<String> userTokens, String appId);

    /**
     * 模糊查询经纪人信息
     *
     * @author dengqiang
     * @since 2019/2/19
     */
    public List<BrokerCardVo> queryBrokerInfo(String appId, String forWord);

    /**
     * 根据经销商id查询所有顾问人员信息
     *
     * @param dealerId
     * @return
     */
    public List<BrokerByDlerIdDTO> queryBrokerInfoByDealerId(String dealerId);

    public List<BrokerByDlerIdDTO> queryBrokerInfoByDealerCodeAndAppId(String dealerCode, String appId);

    public BrokerDTO getByDmsId(String dmsId);

    public BrokerDTO getByUserCodeAndAppId(String userCode, String appId);

    public Map<String, Object> findBrokerInfo(Long brokerId);

    /**
     * 获取顾问信息
     * @author lijun
     */
    List<BrokerCardVo> getBrokerInfo(String appId, List<String> userIds, List<String> userCodes);

    /**
     * 传播APP中获取展示顾问信息
     *
     * @author houkh
     */
    BrokerDealerInfoVO brokerInfo(String userId, String appId);

    BrokerDealerInfoVO brokerInfoApp(String userId, String appId);
}
